As more computing power is required for computing applications, trends in the past several decades have been to provide processors with increasing number of transistors, single thread performance, frequency and power utilization. In the last decade the number of cores has also started to increase within a processor.
While the number of transistors continues to increase exponentially, limits are being approached with regard to single thread performance, frequency and the typical power on a processor. Therefore, in order to increase processing power, new technologies are employing hundreds or thousands of cores, which are grouped in a multi-core processor to tackle program code in a highly parallel manner.
Multi-core processors tend to have high power consumption and generate significant heat. Such high power consumption and heat make the processors inefficient for applications such as mobile handsets, which require low power per processing instruction, measured in giga-floating point operations per second, per watt (GFLOPS/W).